<?php

class SysUser implements JsonSerializable
{
    private $id;
    private $account;
    private $admin;
    private $avatar;
    private $createDate;
    private $deleted;
    private $email;
    private $last_login;
    private $mobilePhoneNumber;
    private $nickname;
    private $password;
    private $salt;
    private $status;

    /**
     * @param $id
     * @param $account
     * @param $admin
     * @param $avatar
     * @param $createDate
     * @param $deleted
     * @param $email
     * @param $last_login
     * @param $mobilePhoneNumber
     * @param $nickname
     * @param $password
     * @param $salt
     * @param $status
     */
    public function __construct($id, $account, $admin, $avatar, $createDate, $deleted, $email, $last_login, $mobilePhoneNumber, $nickname, $password, $salt, $status)
    {
        $this->id = $id;
        $this->account = $account;
        $this->admin = $admin;
        $this->avatar = $avatar;
        $this->createDate = $createDate;
        $this->deleted = $deleted;
        $this->email = $email;
        $this->last_login = $last_login;
        $this->mobilePhoneNumber = $mobilePhoneNumber;
        $this->nickname = $nickname;
        $this->password = $password;
        $this->salt = $salt;
        $this->status = $status;
    }

    /**
     * @return mixed
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @param mixed $id
     */
    public function setId($id): void
    {
        $this->id = $id;
    }

    /**
     * @return mixed
     */
    public function getAccount()
    {
        return $this->account;
    }

    /**
     * @param mixed $account
     */
    public function setAccount($account): void
    {
        $this->account = $account;
    }

    /**
     * @return mixed
     */
    public function getAdmin()
    {
        return $this->admin;
    }

    /**
     * @param mixed $admin
     */
    public function setAdmin($admin): void
    {
        $this->admin = $admin;
    }

    /**
     * @return mixed
     */
    public function getAvatar()
    {
        return $this->avatar;
    }

    /**
     * @param mixed $avatar
     */
    public function setAvatar($avatar): void
    {
        $this->avatar = $avatar;
    }

    /**
     * @return mixed
     */
    public function getCreateDate()
    {
        return $this->createDate;
    }

    /**
     * @param mixed $createDate
     */
    public function setCreateDate($createDate): void
    {
        $this->createDate = $createDate;
    }

    /**
     * @return mixed
     */
    public function getDeleted()
    {
        return $this->deleted;
    }

    /**
     * @param mixed $deleted
     */
    public function setDeleted($deleted): void
    {
        $this->deleted = $deleted;
    }

    /**
     * @return mixed
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * @param mixed $email
     */
    public function setEmail($email): void
    {
        $this->email = $email;
    }

    /**
     * @return mixed
     */
    public function getLastLogin()
    {
        return $this->last_login;
    }

    /**
     * @param mixed $last_login
     */
    public function setLastLogin($last_login): void
    {
        $this->last_login = $last_login;
    }

    /**
     * @return mixed
     */
    public function getMobilePhoneNumber()
    {
        return $this->mobilePhoneNumber;
    }

    /**
     * @param mixed $mobilePhoneNumber
     */
    public function setMobilePhoneNumber($mobilePhoneNumber): void
    {
        $this->mobilePhoneNumber = $mobilePhoneNumber;
    }

    /**
     * @return mixed
     */
    public function getNickname()
    {
        return $this->nickname;
    }

    /**
     * @param mixed $nickname
     */
    public function setNickname($nickname): void
    {
        $this->nickname = $nickname;
    }

    /**
     * @return mixed
     */
    public function getPassword()
    {
        return $this->password;
    }

    /**
     * @param mixed $password
     */
    public function setPassword($password): void
    {
        $this->password = $password;
    }

    /**
     * @return mixed
     */
    public function getSalt()
    {
        return $this->salt;
    }

    /**
     * @param mixed $salt
     */
    public function setSalt($salt): void
    {
        $this->salt = $salt;
    }

    /**
     * @return mixed
     */
    public function getStatus()
    {
        return $this->status;
    }

    /**
     * @param mixed $status
     */
    public function setStatus($status): void
    {
        $this->status = $status;
    }




    public function jsonSerialize()
    {
        return [
            'id' => $this->id,
            'account' => $this->account,
            'admin' => $this->admin,
            'avatar' => $this->avatar,
            'createDate' => $this->createDate,
            'deleted' => $this->deleted,
            'email' => $this->email,
            'last_login' => $this->last_login,
            'mobilePhoneNumber' => $this->mobilePhoneNumber,
            'nickname' => $this->nickname,
            'password' => $this->password,
            'salt' => $this->salt,
            'status' => $this->status
        ];
    }
}